/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaLogica;

import CapaAccesoBD.Conector;
import java.util.ArrayList;

/**
 *
 * @author DiegoRivera
 */
public class MultiDescriptor {
    
    public  Descriptor crear(String codigo, String descriptor)
        throws Exception{

        Descriptor objDescriptor=null;
        String sql;
        sql = "INSERT INTO TDescriptor " +
        "VALUES ('"+codigo+"', '"+descriptor+"';";
        try {
            Conector.getConector().ejecutarSQL(sql);
            objDescriptor = new Descriptor (codigo, descriptor);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
        return objDescriptor;
    }
    /**
    *Actualiza los datos de un Descriptor
    *
    * @param  objDescriptor  objeto Descriptor
    */	
        
    public  void actualizar(Descriptor objDescriptor) throws 
                java.sql.SQLException,Exception{
        String sql;
        sql = "UPDATE TDescriptor "+
        "SET codigo='"+objDescriptor.getCodigo()+"' "+
        ",descriptor='"+objDescriptor.getDescripcion()+"' "+
        "WHERE codigo='"+objDescriptor.getCodigo()+"';";
        try {
            Conector.getConector().ejecutarSQL(sql);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
    }
    /**
    *Borra el registro de una Descriptor
    *
    * @param  objDescriptor  objeto Descriptor
    */
    public  void borrar(Descriptor objDescriptor) throws 
                    java.sql.SQLException,Exception{
        String sql;
        sql = "DELETE FROM TDescriptor "+
        "WHERE codigo='"+objDescriptor.getCodigo()+"';";
        try {
            Conector.getConector().ejecutarSQL(sql);
        }
        catch (Exception e) {
            throw new Exception (e.getMessage());
        }
    }
    /**
    *Busca las coincidencias de las Descriptores con un
    * Descriptor determinado
    *
    * @param  pnomDescriptor  Descriptor de la una Descriptor
    */  
    public Descriptor buscarPorCodigo(String pcodigo) throws Exception{
        Descriptor objDescriptor=null;
        String sql;
        java.sql.ResultSet rs;
        sql = "SELECT codigo, descriptor " + 
              "FROM TDescriptor " + 
              "WHERE codigo = '"+pcodigo+"';";
        try{

            rs = Conector.getConector().ejecutarSQL(sql,true);
            if(rs.next()){
                objDescriptor = new Descriptor (rs.getString("codigo"), rs.getString("descriptor"));
            }
        }catch (Exception e){ 
            throw new Exception (e.getMessage());
        }
        rs.close();

        return objDescriptor;
    }        
    /**
    *Busca las coincidencias de las Descriptors con un
    * Descriptor determinado
    *
    * @param  pnomDescriptor  Descriptor de la una Descriptor
    * @return   ArrayList<Descriptor>
    */ 
    public ArrayList<Descriptor> buscarDescriptoresPorDescriptor(String pdescriptor) throws Exception{
        Descriptor objDescriptor;
        ArrayList<Descriptor> listaDescriptores;
        String sql;
        java.sql.ResultSet rs;
        sql = "SELECT codigo, descriptor " + 
                "FROM TDescriptor " + 
                "WHERE Descriptor like '%"+pdescriptor+"%';";
        try{
            rs = Conector.getConector().ejecutarSQL(sql,true);
            listaDescriptores = new ArrayList<>();
            if (rs.next()) {
                do{
                    objDescriptor = new Descriptor (rs.getString("codigo"), rs.getString("descriptor"));
                    listaDescriptores.add(objDescriptor);
                }while (rs.next());
            }
        }catch (Exception e){
            throw new Exception (e.getMessage());
        }
        rs.close();

        return listaDescriptores;
    }
        
}
